<!DOCTYPE>
<html>
<head>
  <style>
    .init {
      transition-duration: 1s;
      transition-timing-function: linear;
    }
    
    .x {
      transition-property: x;
    }
    .x.final {
      x: 200px;
    }

    .y {
      transition-property: y;
    }
    .y.final {
      y: 200px;
    }

    .r {
      transition-property: r;
    }
    .r.final {
      r: 200px;
    }

    .rx {
      transition-property: rx;
    }
    .rx.final {
      rx: 200px;
    }

    .ry {
      transition-property: ry;
    }
    .ry.final {
      ry: 200px;
    }

    .cx {
      transition-property: cx;
    }
    .cx.final {
      cx: 200px;
    }

    .cy {
      transition-property: cy;
    }
    .cy.final {
      cy: 200px;
    }
  </style>
  <script src="../animations/resources/animation-test-helpers.js"></script>
  <script type="text/javascript">

    const expectedValues = [
      // [time, element-id, property, expected-value, tolerance]
      [0.5, 'x', 'x', 150, 20],
      [0.5, 'y', 'y', 150, 20],
      [0.5, 'sx', 'x', 150, 20],
      [0.5, 'sy', 'y', 150, 20],
      [0.5, 'mx', 'x', 150, 20],
      [0.5, 'my', 'y', 150, 20],
      [0.5, 'ix', 'x', 150, 20],
      [0.5, 'iy', 'y', 150, 20],
      [0.5, 'fx', 'x', 150, 20],
      [0.5, 'fy', 'y', 150, 20],
      [0.5, 'rx', 'rx', 150, 20],
      [0.5, 'ry', 'ry', 150, 20],
      [0.5, 'erx', 'rx', 150, 20],
      [0.5, 'ery', 'ry', 150, 20],
      [0.5, 'cr', 'r', 150, 20],
      [0.5, 'cx', 'cx', 150, 20],
      [0.5, 'cy', 'cy', 150, 20],
    ];
    function setupTest()
    {
      for (var i = 0; i < expectedValues.length; i++)
        document.getElementById(expectedValues[i][1]).classList.add("final");
    }
  
    runTransitionTest(expectedValues, setupTest);
  </script>
</head>
<body>
  <svg>
    <rect x="100" y="100" width="100" height="100" class="init x" id="x"/>
    <rect x="100" y="100" width="100" height="100" class="init y" id="y"/>
    <svg id="sx" class="init x" x="100"/>
    <svg id="sy" class="init y" y="100"/>
    <mask id="mx" class="init x" x="100"/>
    <mask id="my" class="init y" y="100"/>
    <image id="ix" class="init x" x="100" y="100" width="100" height="100"/>
    <image id="iy" class="init y" x="100" y="100" width="100" height="100"/>
    <foreignObject id="fx" class="init x" x="100" y="100" width="100" height="100"/>
    <foreignObject id="fy" class="init y" x="100" y="100" width="100" height="100"/>
    <rect x="100" y="100" width="100" height="100" rx="100" ry="100" class="init rx" id="rx"/>
    <rect x="100" y="100" width="100" height="100" rx="100" ry="100" class="init ry" id="ry"/>
    <ellipse class="init rx" rx="100" ry="100" id="erx"/>
    <ellipse class="init ry" rx="100" ry="100" id="ery"/>
    <circle class="init r" cx="100" cy="100" r="100" id="cr"/>
    <circle class="init cx" cx="100" cy="100" r="100" id="cx"/>
    <circle class="init cy" cx="100" cy="100" r="100" id="cy"/>
  </svg>

  <div id="result">
  </div>
</body>
</html>
